1. Field of the Invention
The present invention relates generally to graphical user interfaces in computer systems, and, more particularly, to a method and system for performing direct manipulation operations in a graphical user interface.
2. Description of the Prior Art
Presently existing graphical user interfaces typically include a plurality of selectable visual icons that represent software objects, including documents and files, as well as software applications, such as text editors and spreadsheets, and operations such as printing, deleting, or filing. As a practical matter, nearly any software document or operation can be visually represented by a selectable visual icon.
One of the great promises of graphical user interfaces lies in their intuitive nature. Users can draw on their real world experiences in performing various tasks in the electronic workplace created by the graphical user interface. For example, in character based user interfaces, if the user wishes to print a document, the user must know and be able to type an appropriate command or series of commands. In contrast, with a graphical user interface, the user can, with a mouse or other pointing device, drag an icon that represents the document the user wishes to print across the computer display screen and drop the document icon on another icon that represents a printer. Similarly, if the user wishes to file the electronic document in a particular file, the user may simply drag the icon that represents the document and drop it on the appropriate file icon.
A drawback to presently existing direct manipulation techniques is the requirement that both the source icon and the target location or icon must be simultaneously visible. As a practical matter, the source and target objects are rarely visible at the same time. Therefore, in a substantial number of cases, the user must painstakingly rearrange the items on the display screen to simultaneously expose both the source and target objects prior to initiating the direct manipulation operation. The necessary rearrangement is made even more difficult because in currently existing implementations, it is as if the user is able only to use one hand. For example, in the real world, the simple task of moving a document from one folder to another in a file drawer would be very tedious if the user were allowed or able to use only one hand. First, the user would open the file folder containing the document and then remove the document. However, since the user can use only one hand, the user would have to set the document down somewhere convenient, such as his desktop, in order to free his hand to open the other folder. Next the user would have to go back to the desktop, pick up the document again and place it in the second folder. A clever person with a relatively empty file drawer might be able to open the second folder and then carefully open the first folder without affecting the second folder. In this case, the person could, with one hand, pick up the document from the first folder and transfer it to the second folder all in one motion. However, this approach requires more steps and is awkward and not intuitive.
Similarly, in presently existing graphical user interfaces, unless the user is very fortunate in the arrangement of items on the display screen, the user must place the source object at some convenient location on the screen and then surface the target object or location. After the user has surfaced the target object or location, assuming that the source object has not become obscured, the user can drag and drop the source on the target.
In co-pending application Ser. No. 07/703,434, filed May 17, 1991, which is assigned to the assignee of the present application, a method is provided for facilitating direct manipulation of selectable visual icons in a data processing system having a plurality of viewports or windows that at least partially overlap each other and obscure certain of the selectable visual icons. When the user begins to drag one of the icons, the system monitors the position of the dragged icon on the display screen. Whenever the dragged icon moves into another window or viewport, the system automatically rearranges the order in which the viewports or windows overlap so that the window or viewport that currently contains the dragged icon is on top of the stack. The foregoing solution solves some, but not all, of the problems associated with the "one-handed" direct manipulation. For example, the foregoing solution assumes that the target location is in a window that is open, but not presently visible on the screen. However, the target location may be in a window that has not yet been opened, or may be in a portion of a window that is not visible even when the window is surfaced, i.e., the user may need to scroll the window to reach the target location. The foregoing solution does not provide a means by which the user can open new windows or scroll data within open windows while dragging a source object.